package com.example.algorithm.Math;

// 斐波那契数列。就是从第三个数字开始，后面的数字是前面两个数字的和。
public class Fibonacci {
    // 这个n是表示，满足斐波那契分布规律的数列，的第几个数字是啥。
    public static int fibonacci(int n) {
        if (n <= 1) {
            return n;
        }

        // 这是菲波那切数列的前两项。
        int prev = 0;
        int curr = 1;

        // 为什么是i <= n呢，原因是因为，我们要求的就是第n个数字，所以，遍历到i=n的时候，就停下来。
        for (int i = 2; i <= n; i++) {
            int next = prev + curr;
            // 整体往前挪一下
            prev = curr;
            curr = next;
        }

        return curr;
    }

    public static void main(String[] args) {
        // 测试示例
        int n = 10;
        System.out.println("Fibonacci number at index " + n + ": " + fibonacci(n));
    }
}

